소스 코드 편집기
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.
1. 개요
소스 코드 편집기는 프로그래밍 시 소스 코드의 입력, 편집, 관리를 용이하게 하도록 설계된 텍스트 편집기이다. 구문 강조, 자동 완성, 들여쓰기, 괄호 짝 맞추기 등의 기능을 제공하여 코드 작성 속도를 높이고 오류를 줄인다. 구조 편집기는 코드의 구조를 직접 조작하는 방식으로 편집을 지원하며, 언어 서버 프로토콜(LSP)을 통해 다양한 언어를 지원한다. 주요 소스 코드 편집기로는 Visual Studio Code, Sublime Text, Emacs, Vim 등이 있으며, IDE와 통합되어 더 강력한 개발 환경을 제공하기도 한다. 소스 코드 편집기 및 IDE는 사용자들 사이에서 논쟁의 대상이 되기도 한다.
더 읽어볼만한 페이지
- 프로그래밍 도구 - SWIG
SWIG는 C/C++ 코드를 다른 프로그래밍 언어에서 사용할 수 있도록 인터페이스를 자동으로 생성해주는 도구로서, 복잡한 데이터 형식 처리, 메모리 관리 등을 지원하며, LLDB, GNU Radio, TensorFlow 등 다양한 프로젝트에서 활용된다. - 프로그래밍 도구 - GNU 툴체인
GNU 툴체인은 GNU 프로젝트의 핵심 구성 요소로, 소프트웨어 개발에 필요한 다양한 도구들을 모아 놓은 것으로, 소스 코드 컴파일부터 디버깅, 빌드 자동화까지 소프트웨어 개발 전반을 지원하며 다양한 언어와 플랫폼을 지원한다. - 문서 편집기 - 맞춤법 검사기
맞춤법 검사기는 텍스트의 오타와 문법 오류를 검사하여 수정 제안을 제공하는 소프트웨어 도구이며, 1970년대에 처음 등장하여 기술 발전을 거쳐 현재 다양한 플랫폼에서 여러 언어를 지원한다. - 문서 편집기 - HTML 편집기
HTML 편집기는 HTML 마크업 언어로 작성된 웹 페이지 소스 코드를 편집하는 소프트웨어로, 텍스트 기반 편집 방식과 WYSIWYG 방식이 있으며, 구문 강조 등의 기능을 제공하여 코딩 편의성을 높인다.
소스 코드 편집기 | |
---|---|
기본 정보 | |
종류 | 텍스트 편집기 |
용도 | 소스 코드 편집 |
기능 | |
구문 강조 | 지원 |
자동 완성 | 지원 |
디버깅 | 지원 (플러그인 또는 확장 기능) |
버전 관리 시스템 연동 | 지원 |
코드 폴딩 | 지원 |
정규 표현식 검색/치환 | 지원 |
일반적인 특징 | |
사용자 인터페이스 | 그래픽 사용자 인터페이스 (GUI) 또는 텍스트 기반 인터페이스 (TUI) |
플랫폼 | 다양한 운영 체제 지원 (Windows, macOS, Linux 등) |
확장성 | 플러그인 또는 확장 기능을 통한 기능 확장 |
지원 언어 | 다양한 프로그래밍 언어 지원 |
라이선스 | 상용 또는 오픈 소스 |
예시 | |
주요 소스 코드 편집기 | Visual Studio Code Sublime Text Atom Notepad++ Emacs Vim TextMate BBEdit gedit Kate jEdit UltraEdit |
추가 정보 | |
관련 도구 | 통합 개발 환경 (IDE) |
2. 기능
소스 코드 편집기는 구문 강조, 들여쓰기, 자동 완성, 괄호 짝찾기 등의 기능을 제공하여 소스 코드 입력을 단순화하고 빠르게 만든다.[1] 또한, 컴파일러, 인터프리터, 디버거 등 소프트웨어 개발 프로세스 관련 프로그램을 실행하는 편리한 방법을 제공한다.
구조 편집기는 코드의 구조(추상 구문 트리)를 조작하는 소스 코드 편집기의 다른 형태이다. 구조 편집기는 구문 강조, 유효성 검사, 코드 서식과 같은 기능을 효율적으로 구현하지만, 편집은 자유 형식 텍스트보다 엄격하며, 각 언어에 대한 광범위한 지원이 필요하여 새로운 언어로 확장하기 어렵다.
일부 소스 코드 편집기는 코드를 입력하는 동안 구문을 확인하고 즉시 경고하며, 소스 코드를 압축하여 공통 키워드를 단일 바이트 토큰으로 변환하고 불필요한 공백을 제거하며 숫자를 이진 형식으로 변환하기도 한다.
언어 서버 프로토콜(LSP)은 마이크로소프트의 Visual Studio Code에서 처음 사용되었으며, 소스 코드 편집기가 LSP 서버가 있는 모든 언어에 대한 구문 정보를 읽을 수 있는 LSP 클라이언트를 구현할 수 있도록 한다.
2. 1. 핵심 기능
소스 코드 편집기는 코드 작성, 편집, 탐색을 돕는 다양한 핵심 기능을 제공한다. 구문 강조, 들여쓰기, 자동 완성, 괄호 짝찾기 기능과 같이 소스 코드 입력을 단순화하고 빠르게 만들어주도록 설계된 기능들을 포함한다.[1] 이러한 편집기들은 컴파일러, 인터프리터, 디버거 또는 소프트웨어 개발 프로세스와 관련된 다른 프로그램을 실행하는 편리한 방법을 제공한다.메모장과 같은 많은 텍스트 편집기가 소스 코드를 편집하는 데 사용될 수 있지만, 코드 편집을 향상시키거나 자동화하거나 용이하게 하지 않는다면, ''소스 코드 편집기''가 아니다.
몇몇 소스 코드 편집기는 소스 코드를 압축하여 일반적으로 공통 키워드를 단일 바이트 토큰으로 변환하고, 불필요한 공백을 제거하고, 숫자를 이진 형식으로 변환한다. 이러한 토큰화 편집기는 나중에 소스 코드를 볼 때 압축을 풀고 일관된 대문자 및 간격으로 예쁘게 인쇄할 수 있다.
2. 1. 1. 구문 강조
소스 코드 편집기는 구문 강조 기능을 포함한다. 구문 강조는 코드의 각 요소를 색상과 스타일로 구분하여 가독성을 높이는 기능이다.구조 편집기는 원시 텍스트를 편집하는 대신 코드의 구조, 일반적으로 추상 구문 트리를 조작하는 소스 코드 편집기의 다른 형태이다. 이 경우 구문 강조와 같은 기능은 구체적 구문 트리 또는 추상 구문 트리에서 쉽고 효율적으로 구현되지만, 편집은 자유 형식 텍스트보다 더 엄격한 경우가 많다.
소스 코드 편집기는 코드를 입력하는 동안 구문을 확인하고 구문 문제를 즉시 경고할 수 있다.
언어 서버 프로토콜(LSP)은 마이크로소프트의 Visual Studio Code에서 처음 사용되었으며, 소스 코드 편집기가 LSP 서버가 있는 모든 언어에 대한 구문 정보를 읽을 수 있는 LSP 클라이언트를 구현할 수 있도록 한다. Neovim[2] 및 Brackets[3]와 같은 많은 소스 코드 편집기는 내장 LSP 클라이언트를 추가했으며, Emacs[4], Vim[5] 및 Sublime Text[6]와 같은 다른 편집기는 별도의 플러그인을 통해 LSP 클라이언트를 지원한다.
2. 1. 2. 자동 완성
자동 완성은 코드 작성 시 가능한 제안을 제공하여 입력 시간을 단축하고 오타를 줄이는 기능이다.[1]2. 1. 3. 들여쓰기
들여쓰기는 코드 블록을 시각적으로 구분하여 구조 파악을 용이하게 한다. 소스 코드 편집기는 들여쓰기 기능을 통해 소스 코드 입력을 단순화하고 빠르게 만들어준다.[1]2. 1. 4. 괄호 짝 맞추기
소스 코드 편집기는 괄호 짝찾기 기능을 통해 괄호, 중괄호 등의 짝을 시각적으로 표시하여 오류를 방지한다.[1]2. 2. 추가 기능
소스 코드 편집기는 구문 강조, 들여쓰기, 자동 완성, 괄호 짝찾기 기능과 같이 소스 코드 입력을 단순화하고 빠르게 만들어주도록 설계되었다.[1]구조 편집기는 원시 텍스트를 편집하는 대신 코드의 구조, 일반적으로 추상 구문 트리를 조작하는 소스 코드 편집기의 다른 형태이다. 구조 편집기는 구문 강조, 유효성 검사, 코드 서식과 같은 기능을 구체적 구문 트리 또는 추상 구문 트리에서 쉽고 효율적으로 구현할 수 있지만, 편집은 자유 형식 텍스트보다 더 엄격한 경우가 많다. 또한 각 언어에 대한 광범위한 지원이 필요하므로 새로운 언어로 확장하기가 더 어렵다.
일부 소스 코드 편집기는 코드를 입력하는 동안 구문을 확인하고 구문 문제를 즉시 경고할 수 있다. 또한 소스 코드를 압축하여 일반적으로 공통 키워드를 단일 바이트 토큰으로 변환하고, 불필요한 공백을 제거하고, 숫자를 이진 형식으로 변환하는 기능을 제공하기도 한다.
2. 2. 1. 통합 개발 환경 (IDE) 기능 연동
소스 코드 편집기는 컴파일러, 인터프리터, 디버거 또는 소프트웨어 개발 프로세스와 관련된 다른 프로그램을 실행하는 편리한 방법을 제공한다.[1]2. 2. 2. 고급 기능 (LSP)
언어 서버 프로토콜(LSP)은 마이크로소프트의 Visual Studio Code에서 처음 사용되었으며, 소스 코드 편집기가 LSP 서버가 있는 모든 언어에 대한 구문 정보를 읽을 수 있는 LSP 클라이언트를 구현할 수 있도록 한다.[1] 이를 통해 소스 코드 편집기는 구문 강조, 리팩토링, 참조 찾기를 통해 더 많은 언어를 쉽게 지원할 수 있다.[1] Neovim[2], Brackets[3]와 같은 많은 소스 코드 편집기는 내장 LSP 클라이언트를 추가했으며, Emacs[4], vim[5], Sublime Text[6]와 같은 다른 편집기는 별도의 플러그인을 통해 LSP 클라이언트를 지원한다.3. 역사
소스 코드 편집기는 컴퓨팅 초기부터 현재까지 발전을 거듭해왔다. IBM의 LPEX(Live Parsing Extensible Editor)[7]는 VM/CMS, OS/2, OS/400, Windows, 그리고 Java에서 실행되었다.[8]
3. 1. 초기 편집기
1985년, IBM의 마이크 카울리쇼는 옥스퍼드 대학교 출판부로 파견되어 LEXX를 만들었다. LEXX는 실시간 구문 분석을 사용했으며 구문 강조를 위해 색상과 글꼴을 사용했다. IBM의 LPEX(Live Parsing Extensible Editor)[7]는 LEXX를 기반으로 했다.Vim의 최초 공개 버전은 1991년에 출시되었지만, 구문 강조 기능은 1998년 버전 5.0에 이르러서야 도입되었다.[9]
3. 2. 현대 편집기
2003년, Don Ho는 윈도우용 소스 코드 편집기인 Notepad++를 출시했다. 이는 자바 기반의 소스 코드 편집기인 JEXT[10]의 대안을 만들려는 의도였다. 2015년, 마이크로소프트는 자사의 Visual Studio IDE의 가볍고 크로스 플랫폼 대안으로 Visual Studio Code를 출시했다.[11] 2016년, Visual Studio Code는 Language Server Protocol을 사용하는 마이크로소프트 제품이 되었다.[1]4. IDE와의 비교
소스 코드 편집기는 IDE의 한 구성 요소이다. IDE는 독립형 소스 코드 편집기와는 달리, 디버거 및 빌드 도구도 일반적으로 포함한다.
일부 개발자는 IDE가 필요하지 않은 기능으로 과도하게 묶여 있다고 생각하여 IDE보다 독립형 소스 코드 편집기를 선호하기도 한다.[12]
5. 주요 소스 코드 편집기
다음은 주요 소스 코드 편집기 목록이다.
편집기 | 운영체제 |
---|---|
마이크로소프트 비주얼 스튜디오 내장 편집기 | 윈도우 |
- 위에 언급된 편집기 외에도 다양한 운영체제에서 사용할 수 있는 여러 소스 코드 편집기가 존재한다.
5. 1. 크로스 플랫폼 편집기
- 아톰[15][16][17][18] (리눅스, OS X, 윈도우)
- Brackets
- Eclipse
- 이맥스 (유닉스, 리눅스, OS X, 윈도우)
- Geany (유닉스, 리눅스, OS X, 윈도우)
- Gedit (리눅스, OS X, 윈도우)
- IntelliJ IDEA 내장 편집기 (윈도우, 리눅스, OS X)
- Light Table (리눅스, OS X, 윈도우)
- 넷빈즈
- SlickEdit (리눅스, OS X, 윈도우, 솔라리스, HP-UX, IBM AIX)
- 서브라임 텍스트 (리눅스, OS X, 윈도우)
- 울트라에디트 (리눅스, OS X, 윈도우)
- Vi/Vim (유닉스, 리눅스, OS X, 윈도우)
- 비주얼 스튜디오 코드 (리눅스, OS X, 윈도우)
- jEdit (윈도우, 리눅스, macOS)
- Fleet (윈도우, 리눅스, macOS)
5. 2. 윈도우 전용 편집기
5. 3. macOS 전용 편집기
5. 4. 기타 편집기
6. 논란
일부 소스 코드 편집기 및 IDE는 사용자들 사이에서 오랜 논쟁의 대상이 되어왔다. 프로그래밍 커뮤니티에서는 이를 종종 "성전"이라고 유머러스하게 부르기도 한다.[14] 주목할 만한 예로는 vi 대 Emacs와 이클립스 대 넷빈즈가 있다. 이러한 논쟁은 인터넷 문화의 중요한 부분을 형성했으며, 두 편집기 중 하나라도 언급될 때마다 종종 시작된다.
참조
[1]
웹사이트
Microsoft-backed Language Server Protocol strives for language, tools interoperability
https://www.infoworl[...]
2016-06-27
[2]
웹사이트
LSP documentation - Neovim
https://neovim.io/do[...]
[3]
웹사이트
Language Server Protocol Support in Brackets · adobe/brackets Wiki
https://github.com/a[...]
[4]
웹사이트
LSP Mode - Language Server Protocol support for Emacs - LSP Mode - LSP support for Emacs
https://emacs-lsp.gi[...]
[5]
웹사이트
Using LSP & clangd in Vim
https://jonasdevlieg[...]
2018-04-22
[6]
웹사이트
Home - Sublime Text Language Server Protocol Documentation
https://lsp.readthed[...]
2022-06-12
[7]
웹사이트
LPEX Editor's User Guide - Version 4
https://www.ibm.com/[...]
[8]
간행물
Mike Cowlishaw FREng BSc CEng FIET FBCS CITP
http://domino.resear[...]
IBM
2006-10-18
[9]
웹사이트
The History of Vim
https://jovicailic.o[...]
2014-06-05
[10]
웹사이트
Behind The App: The Story Of Notepad++
https://www.lifehack[...]
2015-06-18
[11]
웹사이트
Introducing Visual Studio Code, Visual Studio 2015 RC, Application Insights Public Preview and .NET Core Preview for Linux and Mac - Somasegar's blog - Site Home - MSDN Blogs
http://blogs.msdn.co[...]
Microsoft
2015-07-04
[12]
웹사이트
Java text editing software for Linux
https://www.computer[...]
2003-02-11
[13]
웹사이트
Global Text Editor Market By Product Type (Cloud Based, Web Based) And By End-Users/Application (Large Enterprises, SMEs) Global Market Share, Forecast Data, In-Depth Analysis, And Detailed Overview, and Forecast, 2013–2026
https://www.apexmark[...]
[14]
웹사이트
Holy War (Hacker Jargon)
https://www.techfak.[...]
2012-04-02
[15]
뉴스
Atom 1.11 Hackable Text Editor Released with Image View Improvements, Fixes
http://news.softpedi[...]
2016-10-11
[16]
뉴스
GitHub Atom 1.9 picks up speed, drops API
http://www.infoworld[...]
2016-08-03
[17]
뉴스
GitHub’s Atom text editor hits 1 million monthly active users
http://venturebeat.c[...]
2016-03-28
[18]
뉴스
Facebook open-sources its Nuclide IDE based on GitHub’s Atom text editor
http://venturebeat.c[...]
2015-06-23
본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.
문의하기 : help@durumis.com